Markdown 语法
参考:JOHN GRUBER「Markdown 语法作者」个人网站

注: 该文档就是采用 Markdown 语法进行编辑的。


概述

Markdown 标记语言产生的意义就是让文本编辑能够更容易的读和写。

Markdown 注重可读性。可发布的 Markdown 标记的文档应该是纯文本,不应该包含用来格式化的标记。Markdown 语法由标点符号标记,标点符号的选择尽量展示其最原始的含义。例如用*强调,>表示引用等等。

Markdown 并不是 HTML 的替代品,它仅仅支持 HTML 的部分标签。HTML 是发布格式,Markdown 是书写格式。如果想要使用HTML中的其他标签,可以直接在Markdown文档中使用。

Markdown语法对块级别的HTML元素有使用限制,例如 <div><table><pre><p>等等。在使用的时候必须在块的头和尾加入空行,并且头和尾标记不能有缩进。

例如在Markdown文档中添加HTML表格语法如下:

上一段落

<table>
    <tr>
        <td>table content</td>
    </tr>
</table>

下一段落

注意: Markdown语法在上述块内不起作用,例如在HTML块中使用强调不起作用。

内联级别的 HTML 标签,例如 <span>, <cite> 或者 <del> 可以在任何地方使用。和块级 HTML 标签不一样的地方就是,Markdown 语法会解析内联级别内的内容。


转义字符

在 HTML 中,<& 需要特殊处理。< 标示标签的开始,& 标示HTML实体。如果要使用,必须采用 &lt;&amp;来标示<和&。这个是比较麻烦的一点,例如要写“AT&T”,在 Markdown 文档中必须写作 AT&amp;T。甚至在文档中插入 URL,也需要转义,例如:

https://v2say.com/popular?page=1&num=10

必须写作:

https://v2say.com/popular?page=1&amp;num=10

需要记住以上必须转义的地方,例如 &copy 即 © 标示版权的标记就不需要转义。


区块标记

段落

一段话由一行或多行文本组成,并由一个或多个空行「仅包含tab 或 空格」隔开。如果想要另起一段,则在句末添加两个或多个空格,然后再回车。


标题

Markdown 支持两种标题标示法:

标题下方用等号或者短横标示,例如:
大标题
=
小标题
-

=- 的数量不限

# 在标题头部标示, # 后保留一个空格:

# 一号标题
## 二号标题
###### 六号标题

引用

Markdown 使用 > 标示引用段落。最好在每行之前添加 > :

> 这
> 是
> 引
> 
> 用

效果如下:



引用可以嵌套,需要在引用内部再添加一层 >:

> 引用一
>
> > 引用二
>
> 引用一

效果如下:

引用一

引用二

引用一

引用块可以包含其他 Markdown 元素, 包括 headers, lists, code:

> 1.   This is the first list item.
> 2.   This is the second list item.
> 
> Here's some example code:
> 
>     return shell_exec("echo $input | $markdown_script");

效果如下:

  1. 第一条
  2. 第二条

代码段:

return shell_exec("echo $input | $markdown_script");

列表

Markdown 支持有序和无序列表

无序列表以 *+- 在行首标示– 以下3种表示是等价的:

*   Red
*   Green
*   Blue

+   Red
+   Green
+   Blue

-   Red
-   Green
-   Blue

有序列表由英文句号标示:

1.  Bird
2.  McHale
3.  Parish

如果某个列表中包含多个段落,保证每行起始距页边4个空格或一个tab。

1.  第一段

    第二段

2.  第二条

在列表中添加引用, > 符号需要缩进:

*   A list item with a blockquote:

    > This is a blockquote
    > inside a list item.

效果如下:

  • A list item with a blockquote:

    This is a blockquote
    inside a list item.


代码块

引用代码块需要在行首添加4个空格或1个tab:

代码块标示如下:

    public static void main(){
        return;
    }

效果如下:

public static void main(){
    return;
}

代码块会持续到下一个无缩进的行或文章末尾。

在代码块中,&<> 会自动转换为 HTML 实体,其他普通的 Markdown 语法不会被 Markdown 语法解析。例如:

<div class="footer">
    &copy; 2004 Foo Corporation
</div>

**strong**

转化后如下:

<pre><code>&lt;div class="footer"&gt;
    &amp;copy; 2004 Foo Corporation
&lt;/div&gt;
</code></pre>

水平分割线

由三个或以上的*-标示水平分割线:

* * *

***

*****

- - -

---------------------------------------